﻿using HongStone.Domain.AttendanceManagement;
using HongStone.Domain.SystemSetupModel.AuthorityManagement;
using HongStone.Domain.SystemSetupModel.FrequentlyUsedDataModel;
using HongStone.Domain.SystemSetupModel.InstitutionSettingModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HongStone.Ince
{
    public interface InstitutionalSettingInce
    {
        /// <summary>
        /// 分页显示,查询(部门管理)
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <param name="DeptName"></param>
        /// <returns></returns>
        public List<Department_category> GetDepartments(int pageIndex, int pageSize, ref int totalCount, string DeptName);

        /// <summary>
        /// 添加部门
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int AddDepartment(Department model);

        /// <summary>
        /// 批量删除(部门管理)
        /// </summary>
        /// <returns></returns>
        public int DeleteDepartment(string ids);

        /// <summary>
        /// 反填获取数据(部门管理)
        /// </summary>
        /// <param name="DeptId"></param>
        /// <returns></returns>
        public Department EditDepartment(int DeptId);

        /// <summary>
        /// 修改(部门管理)
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int UpdateDepartment(Department model);

        /// <summary>
        /// 修改状态(显示)
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int UpdateDepartment01(int DicTableId);

        /// <summary>
        /// 修改状态(隐藏)
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int UpdateDepartment02(int DicTableId);

        /// <summary>
        /// 提醒管理
        /// </summary>
        /// <param name="BuName"></param>
        /// <param name="Name"></param>
        /// <returns></returns>
        public List<Reminder> GetReminders(string BuName, string Name, int pageIndex, int pageSize, ref int totalCount);

        /// <summary>
        ///显示权限（模块权限设置）
        /// </summary>
        /// <param name="ModuleGrade"></param>
        /// <returns></returns>
        public List<Function> GetFuntion(string ModuleGrade);

        /// <summary>
        /// 添加模块（模块权限设置）
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int Add(Function model);

        /// <summary>
        /// 反填模块（模块权限设置）
        /// </summary>
        /// <param name="ModuleId"></param>
        /// <returns></returns>
        public Function GetFunctions(string ModuleId);

        /// <summary>
        /// 修改模块（模块权限设置）
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int UpdateFuntion(Function model);

        /// <summary>
        /// 删除模块（模块权限设置）
        /// </summary>
        /// <param name="ModuleId"></param>
        /// <returns></returns>
        public int DeleteFunctions(string ModuleId);

        /// <summary>
        /// 功能权限设置显示
        /// </summary>
        /// <param name="ModuleGrade"></param>
        /// <returns></returns>
        public List<Function_Roles> GetFunction_Roles(string ModuleGrade);

        /// <summary>
        /// 显示角色
        /// </summary>
        /// <returns></returns>
        public List<RoleAdministrator> GetRoleAdministrators();

        /// <summary>
        /// 添加权限（添加功能权限）
        /// </summary>
        /// <returns></returns>
        public int AddFunction_Role(Function_Role model);

        /// <summary>
        /// 反填(功能权限)
        /// </summary>
        /// <param name="ModuleId"></param>
        /// <returns></returns>
        public Function_Roles EditFunction_Roles(string ModuleId);

        /// <summary>
        /// 修改（功能权限）
        /// </summary>
        /// <returns></returns>
        public int UpdateFunction_Role(RoleAdministrator model);

        /// <summary>
        /// 显示（角色权限设置）
        /// </summary>
        /// <returns></returns>
        public List<Function_Roles> GetRole();

        /// <summary>
        /// 添加角色管理
        /// </summary>
        /// <returns></returns>
        public List<Role_Login> AddRoless(int RoleId, string LoginId);

        /// <summary>
        /// 保存【添加角色管理】
        /// </summary>
        /// <returns></returns>
        public int AddInfos(Role_Login model);

        /// <summary>
        /// 显示用户
        /// </summary>
        /// <returns></returns>
        public List<Login> GetLogin();

        /// <summary>
        /// 反填
        /// </summary>
        /// <returns></returns>
        public Role_Login EditRole_Login(int RoleId);

        /// <summary>
        /// 修改角色管理
        /// </summary>
        /// <returns></returns>
        public List<Role_Login> UpdateRoless(int RoleId, string LoginId);
    }
}
